package loja.view.editor.components.panel;

import java.awt.Dimension;
import java.util.List;

import javax.swing.JLabel;
import javax.swing.border.TitledBorder;

import loja.model.entity.produto.Categoria;
import loja.model.entity.produto.Produto;
import loja.model.handler.HandlerViewEntity;
import loja.model.service.persitence.dao.entity.impl.CategoriaDao;
import loja.view.editor.components.combobox.ComboBoxEditor;
import loja.view.editor.components.comboboxmodel.CategoriaComboBoxModel;
import loja.view.editor.components.textfield.TextFieldIdProperty;
import loja.view.editor.components.textfield.TextFieldProperty;

public class ProdutoPanelEditor extends EntityPanelEditor<Produto, String> {

	private static final long serialVersionUID = 1L;

	private JLabel lblId;
	private JLabel lblNome;
	private JLabel lblCategoria;
	private TextFieldIdProperty txtIdProduto;
	private TextFieldProperty txtNome;
	private ComboBoxEditor<Categoria> cbxCategoria;
	private List<Categoria> categorias;
	private CategoriaComboBoxModel comboBoxModel;

	public ProdutoPanelEditor(
			HandlerViewEntity<Produto, String> handlerViewEntity) {
		super(handlerViewEntity);
		lblId = new JLabel("ID");
		lblNome = new JLabel("NOME");
		lblCategoria = new JLabel("CATEGORIA");
		txtIdProduto = new TextFieldIdProperty("idProduto");
		txtNome = new TextFieldProperty("nome");
		categorias = new CategoriaDao().getAll();
		comboBoxModel = new CategoriaComboBoxModel(categorias);
		cbxCategoria = new ComboBoxEditor<>(comboBoxModel, "categoria");

	}

	@Override
	public void onStart() {

		setBorder(new TitledBorder("Produto"));

		txtNome.setPreferredSize(new Dimension(150, 23));

		add(lblId, "wrap");
		add(txtIdProduto, "wrap, growx");
		add(lblNome, "wrap");
		add(txtNome, "wrap, growx");
		add(lblCategoria, "wrap");
		add(cbxCategoria, "growx");

		handlerViewEntity.addPropertyView(txtIdProduto);
		handlerViewEntity.addPropertyView(txtNome);
		handlerViewEntity.addPropertyView(cbxCategoria);

		addComponentEditor(txtNome);
		addComponentEditor(txtIdProduto);
		addComponentEditor(cbxCategoria);

		super.onStart();
	}

}
